package com.small.xx.ai.file.dto;

import com.small.xx.ai.file.entity.FileInfo;
import java.util.List;

/**
 * 目录浏览响应DTO
 * 
 * @author xx-ai
 * @version 1.0.0
 */
public class DirectoryBrowseResponse {
    
    /**
     * 当前目录路径
     */
    private String currentPath;
    
    /**
     * 父目录路径
     */
    private String parentPath;
    
    /**
     * 文件和目录列表
     */
    private List<FileInfo> items;
    
    /**
     * 目录总数
     */
    private Integer directoryCount;
    
    /**
     * 文件总数
     */
    private Integer fileCount;
    
    /**
     * 总大小（字节）
     */
    private Long totalSize;
    
    /**
     * 是否有权限访问
     */
    private Boolean accessible;
    
    /**
     * 错误信息
     */
    private String errorMessage;

    // 构造器
    public DirectoryBrowseResponse() {}

    public DirectoryBrowseResponse(String currentPath, List<FileInfo> items) {
        this.currentPath = currentPath;
        this.items = items;
        this.accessible = true;
    }

    // Getter和Setter方法
    public String getCurrentPath() {
        return currentPath;
    }

    public void setCurrentPath(String currentPath) {
        this.currentPath = currentPath;
    }

    public String getParentPath() {
        return parentPath;
    }

    public void setParentPath(String parentPath) {
        this.parentPath = parentPath;
    }

    public List<FileInfo> getItems() {
        return items;
    }

    public void setItems(List<FileInfo> items) {
        this.items = items;
    }

    public Integer getDirectoryCount() {
        return directoryCount;
    }

    public void setDirectoryCount(Integer directoryCount) {
        this.directoryCount = directoryCount;
    }

    public Integer getFileCount() {
        return fileCount;
    }

    public void setFileCount(Integer fileCount) {
        this.fileCount = fileCount;
    }

    public Long getTotalSize() {
        return totalSize;
    }

    public void setTotalSize(Long totalSize) {
        this.totalSize = totalSize;
    }

    public Boolean getAccessible() {
        return accessible;
    }

    public void setAccessible(Boolean accessible) {
        this.accessible = accessible;
    }

    public String getErrorMessage() {
        return errorMessage;
    }

    public void setErrorMessage(String errorMessage) {
        this.errorMessage = errorMessage;
    }

    @Override
    public String toString() {
        return "DirectoryBrowseResponse{" +
                "currentPath='" + currentPath + '\'' +
                ", parentPath='" + parentPath + '\'' +
                ", items=" + items +
                ", directoryCount=" + directoryCount +
                ", fileCount=" + fileCount +
                ", totalSize=" + totalSize +
                ", accessible=" + accessible +
                ", errorMessage='" + errorMessage + '\'' +
                '}';
    }
}